home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 10
/
FM Towns Free Software Collection 10.iso
/
ms_dos
/
data
/
wtmr
/
wtmr.mac
< prev
next >
Wrap
Text File
|
1995-02-13
|
23KB
|
1,024 lines
#=========================================================================
#WTERM マクロプログラム 本体 WTMR.MAC v10.5
#=========================================================================
START:
GETID(W$) #USER ID番号をW$に格納。固定。
PRINTCR(" AUTO PILOT WTMR.MAC v10.5 START! by Gako")
PRINTCR("")
PRINTCR("")
PRINTCR(" ようこそ! ◎◎NetWorkの世界を堪能してね (^o^)v")
PRINTCR("")
TIMED("ON") #LOGTIME表示指定。
START0: #ID,パスワード入力等処理。
SWITCH
CASE("User-ID --->")
SEND("\I\R")
GOTO(START0)
CASE("Password --->")
SEND("\P\R")
GOTO(START0)
CASE("ださい-") #確認リターン。
SEND("\R")
END
GETS(A$,"』です") #会員レヴェル取得のため画面をA$に格納。
IFSRCHY(A$,"inner") #ビギナー会員の場合。
CHAIN("WTMR_B.MAC$START")
IFSRCHY(A$,"gular") #レギュラー会員の場合。
CHAIN("WTMR_R.MAC$START")
CALL(LOOP0) #LOOP0内では,R$を設定,CHAT判断フラグ。
SEND("\R") #最初のLOGIN確認。
CALL(LOOP0)
LOGOPEN("MAR") #MAR****.LOG作成。
GETCRTS(M$,"1") #未読メール確認。
GETCRTS(N$,"2") #未読会議室発言確認。
C$="C\R" #CHAT入りコマンドを格納。切断直前までほぼ固定。
WAIT("")
SEND("DOR OFF\R") #DOR OFF指定送信。
CALL(LOOP0)
SEND("ESC OFF\R") #ESC OFF指定送信。
CALL(LOOP0)
SEND("NAP OFF\R") #NAP OFF指定送信。
CALL(LOOP0)
SEND("SBRP\R") #READ POINTER保存。
CALL(LOOP0)
X$="WTMR.MAC" #X$はWTMR_001.MACからの戻り先フラグ。
CHAIN("WTMR_001.MAC$DIR00") #アップ文書有無の確認,文書書き込みマクロへ。
#=========================================================================
AAA: #PAD指定処理開始。
S$="MAR.PAD" #MAR.PADは行動指定ファイル。
E$="/" #MAR.PAD内区切り文字。
O$="_" #MAR.PAD内区切り文字。
P$="." #MAR.PAD内区切り文字。
X$="" #戻り先フラグの役割解除。
GETTXUPD(I$) #I$=G:\WT\UP_TXT\
CAT(B$,I$,S$) #B$=G:\WT\UP_TXT\MAR.PAD。PAD処理中はB$は固定。
ROPEN(B$,READ0) #MAR.PADがなければ,READ0へ。
RREAD(A$) #MAR.PADから一行,A$へ読み込み。
VSWAP(A$,X$) #A$とX$を交換。
IFE(X$,"") #X$はMAR.PADの一行目,一行伝言。ほぼ固定。
X$="/E" #一行伝言が改行のみの場合は,/Eとする。
CAT(I$,"MAR.WRK") #I$=G:\WT\UP_TXT\MAR.WRK
WOPEN(I$) #MAR.WRK作成。
WCLOSE #WAPPENDのために,いったん閉じる。
WAPPEND(I$) #MAR.WRKオープン。
WRITE("") #一行伝言部分を削除して空白を書き込む。
WCLOSE #MAR.WRKを閉じる。
#=========================================================================
DAT_: #>に戻って,CHATに入るかどうかを決めるルーチン。
D$=""
VSWITCH(R$) #LOOP0でR$を設定。
CASE("C") #CHATメッセージがあった場合,R$=C。
CALL(CHAT) #CHATへ。
VCLEAR("R") #CHATから復帰。
GOTO(DAT1) #MAR.PADファイル指定読み込みルーチンへ。
ELSE #R$がCでない場合。
GOTO(DAT1)
END
#=========================================================================
DAT1: #MAR.PAD内指定読み取りルーチン。
RREAD(A$) #MAR.PADから二行目以降をA$へ読み込み。
JUMPE(A$,"",DAT1) #空白のみの行の場合,DAT1へ戻る。
J$=A$ #J$はWAPPEND書き込み用変数。
U$=A$
L$="" #L$はWTMR_001.MACからの戻り先フラグ。
LEFT(U$,"1")
JUMPE(U$,"#",DAT1) #「#」で始まるコメント行の場合,DAT1へ戻る。
VSWITCH(A$)
CASE("SEL") #MENU SELECTER へ。
U$="READ" #U$は移動先フラグ。
GOTO(DAT3) #DAT3は,MAR.PAD書換えルーチン。
CASE("OFF") #自動一行伝言書き込み終了へ。
U$="READ2"
GOTO(DAT3)
CASE("BYE") #手動一行伝言書き込み終了へ。
U$="READ1"
GOTO(DAT3)
CASE("PAS") #未読処理をせずに,MENU SELECTERへ。
U$="SELECT0"
GOTO(DAT3)
ELSE
GOTO(DAT2)
END
#-------------------------------------------------------------------------
DAT2: #「/」指定の分岐。
L$="WTMR.MAC" #WTMR_001.MACから戻り先のフラグ。
IFE(A$,"DLN/") #最新DLリスト取得指定の場合は,WTMR_001.MACへ。
CHAIN("WTMR_001.MAC$DLN")
PICKWORD(D$,A$,E$) #/で区切った内容を分離。
JUMPE(D$,"B",DAT1) #旧版指定の場合。
JUMPE(D$,"M",DAT1) #旧版指定の場合。
JUMPE(D$,"C",CHAN3) #ハンドル名変更指定。
JUMPE(D$,"R",BCREAD) #BC読み指定。
JUMPE(D$,"W",BCWRIT) #BC書き指定。
JUMPE(D$,"U",UP) #UPLOAD指定。
JUMPE(D$,"D",DOWN) #DWONLOAD指定。
JUMPE(D$,"P",PRO) #プロフィール取得指定。
IFE(D$,"L",DL_) #DLリスト取得指定の場合は,WTMR_001.MACへ。
CHAIN("WTMR_001.MAC$DL_")
IFE(D$,"K",KES) #発言削除指定の場合は,WTMR_001.MACへ。
CHAIN("WTMR_001.MAC$KES")
IFE(A$,"",DO) #直接コマンド入力指定の場合は,WTMR_001.MACへ。
CHAIN("WTMR_001.MAC$DO")
#-------------------------------------------------------------------------
DAT3: #MAR.PAD書換えルーチン。
WAPPEND(I$) #追加書き込みに,MAR.WRKをオープン。
WRITE(J$) #MAR.PAD内容をMAR.WRKに書き込む。
DAT4: #読み込み行以下をMAR.WRKに書き込むルーチン。
RREAD(J$,DAT5) #MAR.PADから読み込み。EOFならば,DAT5へ。
WRITE(J$) #MAR.WRKに書き込み。
GOTO(DAT4)
DAT5: #MAR.PAD最終処理ルーチン。
WCLOSE #MAR.WRKを閉じる。
RCLOSE #MAR.PADを閉じる。
A$=""
CAT(A$,"DEL ",B$) #A$=DEL G:\WT\UP_TXT\MAR.PAD
CHILD(A$) #MAR.PAD削除。
DELAYM(1500) #同期調整。
CHANGE(B$,"MAR.PAD","MAR.WRK")
A$=""
CAT(A$,"REN ",B$) #A$=REN G:\WT\UP_TXT\MAR.WRK
CAT(A$," MAR.PAD") #A$=REN G:\WT\UP_TXT\MAR.WRK MAR.PAD
CHILD(A$) #MAR.WRKを,MAR.PADに改名。
DELAYM(1500) #同期調整。
GOTO(U$) #DAT1で格納した移動先へ。
#=========================================================================
UP: #データアップロード指定。
GETUPD(U$) #U$=G:\WT\UP\
Y$=U$
PICKWORD(D$,A$,E$) #/で区切る。D$は,UPLOAD先DL番号。A$=***.LZH
JUMPE(A$,"",RETRYD)
JUMPE(D$,"",RETRYD)
PICKWORD(K$,A$,P$) #K$=***,A$=LZH
JUMPE(K$,"",RETRYD)
JUMP<>(A$,"LZH",RETRYD) #A$がLZHでない場合。
S$=K$
CAT(K$,".GGG") #K$=***.GGG
CAT(S$,".LZH") #S$=***.LZH
CAT(U$,K$) #U$=G:\WT\UP\***.GGG
CAT(Y$,S$) #Y$=G:\WT\UP\***.LZH
JUMPFILEN(U$,RETRYD) #概要ファイルがない場合。
JUMPFILEN(Y$,RETRYD) #アップロードファイルがない場合。
SEND("DL\R") #DLへ。
STIMEOUT(2)
SWITCH
CASE("◆")
GOTO(RETRY) #DLに入る前はRETRYへ。
END
CALL(LOOP0)
SEND(D$) #DL番号送信。
SEND("\R")
STIMEOUT(2)
SWITCH
CASE("◆")
GOTO(DWMIS) #DLに入った後はDWMISへ。
END
CALL(LOOP0)
SEND("2\R") #UPLOADを選択。
CALL(LOOP0)
SEND("\R") #確認。
CALL(LOOP0)
SEND("1\R") #バイナリ送信選択。
CALL(LOOP0)
SEND("\R") #確認。
CALL(LOOP0)
SEND(S$) #UPLOADファイル名送信。
SEND("\R")
STIMEOUT(2)
SWITCH
CASE("◆")
GOTO(UPMIS) "同一名ファイルが存在する場合はUPMISへ。
END
CALL(LOOP0)
SEND("1\R") #確認。
CALL(LOOP0)
FOPEN(U$) #概要ファイルオープン。
FREAD(F$) #概要ファイル一行目格納。TITLE。
LEFT(F$,"26") #TITLE長調整。
SEND(F$) #TILTE送信。
SEND("\R")
CALL(LOOP0)
SEND("\R") #TITLE確認。
CALL(LOOP0)
SEND("2\R") #概要ファイルのアップロードを選択。
CALL(LOOP0)
SEND:
FREAD(F$,EOF) #発言ファイル読込。続きがない場合。
JUMPE(F$,"/E",EOF) #/Eがある場合。
CONVERT(OFF)
SEND(F$) #発言ファイル内容一行送信。
CONVERT(ON)
SEND("\R")
GOTO(SEND) #SENDへ戻る。
EOF:
SEND("/E\R") #概要ファイル送信終了処理。
FCLOSE #概要ファイルを閉じる。
CALL(LOOP0)
SEND("\R") #修正確認。
CALL(LOOP0)
SEND("1\R") #登録確認。
CALL(LOOP0)
SEND("1\R") #送信開始確認。
DELAYM(1500) #同期調整。
UPLOAD(4,S$,ERROR) #F-Xmodem送信。
DELAYM(500) #同期調整。
SEND("\R") #調整のための改行送信。
CALL(LOOP0)
SEND("T\R") #DLから抜ける。
CALL(LOOP0)
V$="namv -a "
A$=""
CAT(A$,V$,U$) #U$=G:\WT\UP\***.GGG
Q$=" $(UploadD)DONE\"
CAT(A$,Q$)
CHILD(A$) #概要ファイル移動。
CAT(V$,Y$) #Y$=G:\WT\UP\***.LZH
CAT(V$,Q$)
CHILD(V$) #LZHファイル移動。
VCLEAR("KUVQSY")
GOTO(DAT_)
#-------------------------------------------------------------------------
UPMIS: #既に同名ファイルが存在する場合の処理。
SEND("ERROR.ERR\R") #ダミー名送信。
CALL(LOOP0)
SEND("1\R") #修正確認(修正しない)。
CALL(LOOP0)
SEND("ERROR\R") #ダミーのタイトル名,ERROR。
CALL(LOOP0)
SEND("\R") #確認。
CALL(LOOP0)
SEND("E\R") #送信処理を抜ける。
CALL(LOOP0)
SEND("T\R") #DLを抜ける。
CALL(LOOP0)
PRINTCR("□GGGファイルをリネームします□")
A$=""
CAT(A$,"REN ",U$) #A$=REN G:\WT\UP\UP.GGG
CAT(A$," *.ERR") #A$=REN G:\WT\UP\UP.GGG *.ERR
CHILD(A$) #書き込みエラーファイルの拡張子をERRにリネーム。
DELAYM(1500) #同期調整。
VCLEAR("KUVQSY")
GOTO(DAT_)
#=========================================================================
DOWN: #DOWNLOAD指定。
PICKWORD(D$,A$,E$) #D$はDL番号。A$=23/***.LZH
PICKWORD(H$,A$,E$) #H$はDOWNLOADデータ番号。A$はデータ名。
JUMPE(A$,"",RETRYD) #指定ミスの場合。
JUMPE(D$,"",RETRYD)
JUMPE(H$,"",RETRYD)
U$=A$
SEND("DL\R") #DLへ。
STIMEOUT(2)
SWITCH
CASE("◆")
GOTO(RETRY) #DLに入る前はRETRYへ。
END
CALL(LOOP0)
SEND(D$) #DL番号送信。
SEND("\R")
STIMEOUT(2)
SWITCH
CASE("◆")
GOTO(DWMIS) #指定DLに入れない場合。
END
CALL(LOOP0)
SEND("3\R") #DOWNLOAD選択。
STIMEOUT(2)
SWITCH
CASE("◆")
GOTO(DWMIS) #DOWNLOAD不可能の場合。
END
CALL(LOOP0)
SEND(H$) #DOWNLOADデータ番号送信。
SEND("\R")
STIMEOUT(2)
SWITCH
CASE("◆")
GOTO(DWMIS1) #DOWNLOAD番号エラー。
END
CALL(LOOP0)
SEND("1\R") #確認。
CALL(LOOP0)
SEND("1\R") #受信方法選択。
DELAYM(4000) #同期調整。
DOWNLOAD(4,U$,ERROR) #F-Xmodemによる受信。
DELAYM(500) #同期調整。
SEND("\R") #同期調整のための改行送信。
CALL(LOOP0)
SEND("T\R") #DLを抜ける。
VCLEAR("HU")
CALL(LOOP0)
GOTO(DAT_)
#-------------------------------------------------------------------------
DWMIS1: #データ番号ミスの場合。
CALL(LOOP0)
SEND("\R") #リターン送信で,DOWNLOADを抜ける。
DWMIS: #DLに入れない場合。DWONLOAD不可能の場合。
CALL(LOOP0)
SEND("T\R") #メインプロンプトへ。
CALL(LOOP0)
VCLEAR("HU")
GOTO(DAT_)
#=========================================================================
READ0: #MAR.PADがない場合,一行伝言を代入。
X$="また来るねぇ~ (^^)/゚" #READへ合流。
READ: #DAT1で格納したU$内容による処理。SELECTERへ。
U$="SELECT0" #U$は未読処理後の移動先フラグ。
GOTO(R1) #未読有無確認ルーチンへ。
READ1: #未読処理終了後,自動伝言入力へ行く設定の場合。
U$="OFF4"
GOTO(R1)
READ2: #未読処理終了後,手動伝言入力へ行く設定の場合。
U$="OFF1"
#-------------------------------------------------------------------------
R1: #メール未読確認。
JUMPSRCHN(N$,"あります",R2) #あります,がない場合,M$の判断へ。
GOTO(READ000) #あります,があった場合,未読処理へ。
R2: #メール未読がない場合,会議室未読確認。
JUMPSRCHN(M$,"あります",U$) #両方未読がない場合,指定ラヴェルへ。
#-------------------------------------------------------------------------
READ000:
SEND("/ALL\R") #/ALLによる未読処理。
CALL(LOOP0)
VSWITCH(R$) #CHATメッセージ有無の判断分岐。
CASE("C")
CALL(CHAT) #CHATへ。
VCLEAR("R") #CHATから復帰。
GOTO(U$) #指定されたラヴェルへ。
ELSE
GOTO(U$)
END
#=========================================================================
SELECT0: #メイン MEMU SELECTER
H$="ボードチャット 2~7+他にも色々できるよ。"
I$="ボードチャット 8~11+GAMEをします。 GAME内は,自由行動です。"
J$="データライブラリに行きます。+ログアウトします。"
SMENU(H$,I$,J$)
VSWITCH(H$)
CASE("0")
PRINTCR(" MACRO STOP! SEE YOU AGAIN! (^o^)/゚")
EXIT
CASE("1")
GOTO(BC1)
CASE("2")
GOTO(BC2)
CASE("3")
GOTO(DL)
CASE("4")
GOTO(ETC)
CASE("5")
GOTO(GAME)
CASE("6")
GOTO(OFF1)
ELSE
GOTO(SELECT0)
END
ETC:
H$="各種 RANK表示をします。+もっと,いろいろできるよ。"
I$="誰がアクセスしてるかな?+一行伝言デフォルト内容の確認をします。"
J$="今日はどんな日かな?+一行伝言をデフォルトで入力してログアウトします。"
SMENU(H$,I$,J$)
VSWITCH(H$)
CASE("0")
GOTO(SELECT0)
CASE("1")
GOTO(ETC01)
CASE("2")
Y$="LOG"
GOTO(ETC1)
CASE("3")
Y$="DAY"
GOTO(ETC1)
CASE("4")
GOTO(ETC2)
CASE("5")
GOTO(DEF)
CASE("6")
GOTO(OFF4)
ELSE
GOTO(ETC)
END
ETC01:
H$="所有GOLD RANKINGを表示します。+発言回数RANKINGを表示します。"
I$="書き込み率RANKINGを表示します。"
J$="アクセス回数RANKINGを表示します。"
SMENU(H$,I$,J$)
VSWITCH(H$)
CASE("0")
GOTO(ETC)
CASE("1")
Y$="GRNK"
GOTO(ETC1)
CASE("2")
Y$="RRNK"
GOTO(ETC1)
CASE("3")
Y$="ARNK"
GOTO(ETC1)
CASE("4")
Y$="WRNK"
GOTO(ETC1)
ELSE
GOTO(ETC01)
END
ETC2:
H$="50,000GOLD取得者を表示します。+まだまだできるよ。"
I$="ハンドル名を一時的に変更します。+PROFIELを表示します。"
J$="ハンドル名を元に戻します。+自由行動します。"
SMENU(H$,I$,J$)
VSWITCH(H$)
CASE("0")
GOTO(SELECT0)
CASE("1")
Y$="KING"
GOTO(ETC1)
CASE("2")
Y$="CHAN"
GOTO(CHAN)
CASE("3")
Y$="RHAN"
GOTO(ETC1)
CASE("4")
GOTO(ETC3)
CASE("5")
Y$="PROF"
GOTO(PROF)
CASE("6")
GOTO(ETC4)
ELSE
GOTO(ETC2)
END
ETC3:
H$="規約を読みます。+SYSOPとチャットをします。抜ける時は「/E」を入れてね。"
I$="郵送規約を読みます。+未読ポインター移動を行います。指示通り入力してね。"
J$="会議室とボードチャットの一覧を見ます(MAP)。+未読情報を表示します。"
SMENU(H$,I$,J$)
VSWITCH(H$)
CASE("0")
GOTO(SELECT0)
CASE("1")
Y$="規約"
GOTO(ETC1)
CASE("2")
Y$="郵送"
GOTO(ETC1)
CASE("3")
Y$="MAP"
GOTO(ETC1)
CASE("4")
GOTO(CHATS)
CASE("5")
GOTO(HAND)
CASE("6")
Y$="B"
GOTO(ETC0100)
ELSE
GOTO(ETC2)
END
BC1:
H$="No.2 異次元の部屋+No.5 夢と希望の部屋"
I$="No.3 好き者の部屋+No.6 ギャグの部屋"
J$="No.4 アニメの部屋+No.7 音楽の部屋"
SMENU(H$,I$,J$)
VSWITCH(H$)
CASE("0")
GOTO(SELECT0)
CASE("1")
ADD(H$,H$,"1")
GOTO(BCSEND)
CASE("2")
ADD(H$,H$,"1")
GOTO(BCSEND)
CASE("3")
ADD(H$,H$,"1")
GOTO(BCSEND)
CASE("4")
ADD(H$,H$,"1")
GOTO(BCSEND)
CASE("5")
ADD(H$,H$,"1")
GOTO(BCSEND)
CASE("6")
ADD(H$,H$,"1")
GOTO(BCSEND)
ELSE
GOTO(BC1)
END
BC2:
H$="No. 8 尻取りの部屋+No.11 マルフィーの法則"
I$="No. 9 電脳の部屋"
J$="No.10 TRPGの部屋"
SMENU(H$,I$,J$)
VSWITCH(H$)
CASE("0")
GOTO(SELECT0)
CASE("1")
ADD(H$,H$,"7")
GOTO(BCSEND)
CASE("2")
ADD(H$,H$,"7")
GOTO(BCSEND)
CASE("3")
ADD(H$,H$,"7")
GOTO(BCSEND)
CASE("4")
ADD(H$,H$,"7")
GOTO(BCSEND)
ELSE
GOTO(BC2)
END
#=========================================================================
SELECT_: #CHAT信号判断ルーチン。
VSWITCH(R$)
CASE("C")
CALL(CHAT) #CHATへ。
VCLEAR("R") #CHATから復帰。
GOTO(F$)
ELSE
GOTO(F$)
END
#=========================================================================
CHAN: #SELECTERからハンドル名変更の場合。
INPUT(A$,"新しいハンドル名を12バイト以内で入力して下さい。","705.60")
JUMPE(A$,"",DAT1) #入力が空白のみの場合。
SEND(Y$) #CHAN送信。
SEND("\R")
LEFT(A$,"12") #ハンドル名長調整。
CALL(LOOP0)
CONVERT(OFF)
SEND(A$) #ハンドル名送信。
CONVERT(ON)
SEND("\R")
WAIT("\010")
SEND("\R") #確認。
VCLEAR("AY")
CALL(LOOP0)
F$="SELECT0"
GOTO(SELECT_)
#-------------------------------------------------------------------------
CHAN3: #MAR.PAD内ハンドル変更指定の場合。
LEFT(A$,"12") #A$は入力済ハンドル名。長さを調整。
JUMPE(A$,"",DAT_) #ハンドル名指定忘れ。
SEND("CHAN\R")
CALL(LOOP0)
CONVERT(OFF)
SEND(A$) #新ハンドル名送信。
CONVERT(ON)
SEND("\R")
WAIT("\010")
SEND("\R") #確認。
VCLEAR("AY")
CALL(LOOP0)
GOTO(DAT_)
#=========================================================================
RHAN: #MAR.PAD内の,ハンドル名を元に戻す指定の場合。
SEND("RHAN\R")
CALL(LOOP0)
GOTO(DAT_)
#=========================================================================
HAND: #SELECTERから,ポインター移動ルーチン。
F$="ETC3"
INPUT(H$,"ポインター移動をする会議室番号を入力して下さい:","705.60")
JUMPE(H$,"",SELECT_) #入力がない場合。
SEND(H$) #会議室番号送信。
SEND("\R")
CALL(LOOP0)
DELAYM(500) #同期調整。
GETCRTS(A$,"2") #会議室移動確認。
JUMPSRCHY(A$,"◆",SELECT_)
INPUT(H$,"移動ポインター数を入力して下さい:","705.60")
JUMPE(H$,"",SELECT_) #入力がない場合。
SEND("RP ") #RPはポインター移動コマンド。
SEND(H$) #移動先ポインター数送信。
SEND("\R")
CALL(LOOP0)
DELAYM(500) #同期調整。
GOTO(SELECT_)
#=========================================================================
PRO: #PROFIELEルーチン(PAD指定から)。
JUMPE(A$,"",DAT_) #表示先ID等指定ミスの場合。
SEND("PROF ") #PROFIELE表示コマンド。
SEND(A$) #表示先ID等送信。
SEND("\R")
CALL(LOOP0)
GOTO(DAT_)
#-------------------------------------------------------------------------
PROF: #PROFIELEルーチン(SELECTERから)。
INPUT(H$,"ID or ハンドル名を正確に入力して下さい:","705.60")
JUMPE(H$,"",SELECT0) #ID等の指定がない場合。
CAT(Y$," ") #Y$=PROF
CAT(Y$,H$) #Y$=PROF ID
SEND(Y$)
SEND("\R")
CALL(LOOP0)
DELAYM(1500) #同期調整。
F$="SLECT0"
GOTO(SELECT_)
#=========================================================================
ETC4: #SELECTERから,自由行動選択の場合。
INPUT(H$,"コマンドを正確に入力して下さい:","705.60")
JUMPE(H$,"",SELECT0) #コマンド入力がない場合。
SEND(H$)
SEND("\R")
CALL(LOOP0)
F$="ETC2" #戻り先指定フラグ。
GOTO(SELECT_)
#=========================================================================
DEF: #MAR.PADで指定した一行伝言の内容表示。
PRINTCR("")
PRINTCR("一行伝言に設定されているのは----")
PRINTCR(X$)
PRINTCR("----です。")
F$="ETC"
GOTO(SELECT_) #プロンプト表示は待たない。
#=========================================================================
ETC1: #SELECTERから,単純コマンド指定の場合。
SEND(Y$)
SEND("\R")
CALL(LOOP0)
F$="SELECT0"
GOTO(SELECT_)
ETC0100: #未読情報一覧表示の場合(Bコマンド)。
SEND(Y$)
SEND("\R")
CALL(LOOP0)
F$="ETC3"
GOTO(SELECT_)
#=========================================================================
BCSEND: #SELECTERから,BC発言の場合。
I$="BC"
CAT(I$,H$,"\R")
F$="BCSEND0"
BCSEND0:
SEND(I$)
CALL(LOOP0)
INPUT(K$,"未読処理のみのときにはリターンでいいよ。","705.120")
IFE(K$,"") #リターン処理をした場合。
K$="/E"
CONVERT(OFF)
SEND(K$) #入力内容を送信。
CONVERT(ON)
SEND("\R")
JUMPE(K$,"/E",BCSENDE) #入力がない場合。確認処理を飛ばす。
CALL(LOOP0)
SEND("\R") #確認。
BCSENDE:
CALL(LOOP0)
F$="SELECT0"
GOTO(SELECT_)
#-------------------------------------------------------------------------
BCREAD: #MAR.PADから,BC未読処理指定の場合。
JUMPE(A$,"",DAT1) #BC番号指定ミス。
U$="BC"
CAT(U$,A$,"\R")
SEND(U$)
CALL(LOOP0)
SEND("/E")
SEND("\R")
CALL(LOOP0)
GOTO(DAT_)
#-------------------------------------------------------------------------
BCWRIT: #MAR.PADから,BC書き込み指定の場合。
PICKWORD(D$,A$,E$)
JUMPE(A$,"",DAT1)
JUMPE(D$,"",DAT1)
H$=A$
U$="BC"
CAT(U$,D$,"\R")
SEND(U$)
CALL(LOOP0)
CONVERT(OFF)
SEND(H$)
CONVERT(ON)
SEND("\R")
CALL(LOOP0)
SEND("\R")
VCLEAR("H")
CALL(LOOP0)
GOTO(DAT_)
#=========================================================================
GAME:
SEND("GAME\R")
F$="GAME0" #F$はLOOP1内で使用する移動先フラグ。
GAME0:
L$=")>" #L$はLOOP1内で使用するプロンプト判断変数。
CALL(LOOP1)
GOTO(SELECT0)
#=========================================================================
DL:
H$="自由行動します。"
I$="最新到着データを見ます。"
SMENU(H$,I$)
VSWITCH(H$)
CASE("0")
GOTO(SELECT0)
CASE("1")
GOTO(DL0)
CASE("2")
GOTO(DL1)
ELSE
GOTO(DL)
END
DL0:
SEND("DL\R")
PRINTCR("")
PRINTCR("□DL 終了は「Data>」のところで 「T」 or リターン です□")
F$="DL00"
DL00:
L$=")>"
CALL(LOOP1)
GOTO(DL)
#-------------------------------------------------------------------------
DL1: #最新DLリスト取得ルーチン。
F$="DL"
SEND("DL\R")
STIMEOUT(2)
SWITCH
CASE("◆")
GOTO(SELECT_) #DLに入る前。
END
CALL(LOOP0)
SEND("N\R")
CALL(LOOP0)
SEND("T\R")
CALL(LOOP0)
GOTO(SELECT_)
#=========================================================================
OFF1: #手動伝言書き込み終了処理。
SEND("OFF\R")
L$="\013\010:"
F$="OFF2"
C$="/C\R" #ここまでは,常にC$=C\R。
CALL(LOOP1)
SEND("\R")
CALL(LOOP1)
OFF2:
INPUT(A$,"一行伝言を入力して下さい。",705.120)
CONVERT(OFF)
SEND(A$)
CONVERT(ON)
SEND("\R")
JUMPE(A$,"",OUT)
JUMPE(A$,"/E",OUT)
WAIT(":")
SEND("\R")
GOTO(OUT)
#-------------------------------------------------------------------------
OFF4: #指定伝言書き込み終了処理。
SEND("OFF\R")
L$="\013\010:"
F$="OFF5"
C$="/C\R"
CALL(LOOP1)
SEND("\R")
CALL(LOOP1)
OFF5:
CONVERT(OFF)
SEND(X$) #MAR.PAD指定一行伝言内容。
CONVERT(ON)
SEND("\R")
JUMPE(X$,"/E",OUT) #指定一行伝言が空白の場合。
WAIT(":")
SEND("\R")
GOTO(OUT)
#-------------------------------------------------------------------------
OUT: #マクロ終了処理。
WAIT("切断します-")
PRINTCR("")
PRINTCR("")
PRINTCR(" MACRO STOP! SEE YOU AGAIN! (^o^)/゚")
PRINTCR("")
PRINTCR("")
PRINTCR(" また来てね!")
LOGCLOSE
EXIT #マクロ終了。
#=========================================================================
ERROR:
PRINTCR("□ごめんなさい! 送受信に失敗しちゃった! (;_;)□")
DELAYM(500)
SEND("\R")
CALL(LOOP0)
SEND("T\R")
VCLEAR("HJKU")
CALL(LOOP0)
GOTO(DAT_)
#=========================================================================
CHAT:
WAIT("",1,CHAT)
SEND(C$) #C$=C\R or /C\R
CALL(CHAT0)
RETURN
CHAT0:
WAIT("",1,CHAT0)
VCLEAR("A")
INPUT(A$,"チャットは楽しいね。",705.120)
IFE(A$,"")
CALL(CHATERR)
CONVERT(OFF)
SEND(A$)
CONVERT(ON)
SEND("\R")
IFE(A$,"/E")
RETURN
GOTO(CHAT0)
CHATERR:
SEND("自動運転中で,反応できないの。ごめんなさい。 m(_._)m\R")
CHATERR0:
WAIT("",1,CHATERR0)
A$="/E"
RETURN
#-------------------------------------------------------------------------
CHATS:
WAIT("",1,CHATS)
SEND("C\R")
CHATS0:
WAIT("",1,CHATS0)
INPUT(R$,"チャットは楽しいね。",705.120)
CONVERT(OFF)
SEND(R$)
CONVERT(ON)
SEND("\R")
JUMPE(R$,"/E",CHATS1)
JUMPE(R$,"/e",CHATS1)
GOTO(CHATS0)
CHATS1:
WAIT("",1,CHATS1)
VCLEAR("R")
GOTO(SELECT0)
CHA:
SEND("\R")
VSWITCH(F$)
CASE("OFF2")
CALL(CHAT)
GOTO(F$)
CASE("OFF5")
CALL(CHAT)
GOTO(F$)
CASE("GAME0")
GOTO(F$)
ELSE
GOTO(CHA00)
END
CHA00:
SWITCH
CASE(")>")
CALL(CHAT)
GOTO(F$)
CASE(":")
SEND("\R")
GOTO(CHA00)
CASE(":")
SEND("\R")
GOTO(CHA00)
END
CHA1:
SEND("0\R")
WAIT(")>")
CALL(CHAT)
GOTO(SELECT0)
CHA2:
SEND("2\R")
WAIT("e:")
SEND("0\R")
WAIT(")>")
CALL(CHAT)
GOTO(SELECT0)
#=========================================================================
LOOP0: #CHAT判断ルーチン(その1)。汎用。
SWITCH
CASE("T{^。^`}ヨホホホ。")
GETCRTS(Z$,"0")
R$="C"
RETURN
CASE("+\013\010")
WAIT("",1,LOOP0)
RETURN
CASE("0\013\010")
WAIT("",1,LOOP0)
RETURN
CASE("い\013\010:")
WAIT(" ",1,LOOP0)
RETURN
CASE("\010:")
WAIT("",1,LOOP0)
RETURN
CASE("\010:")
WAIT("",1,LOOP0)
RETURN
CASE("名】:")
WAIT("",1,LOOP0)
RETURN
CASE(">")
GETCRTS(Z$,"0")
WAIT("",1,LOOP0)
RETURN
CASE("):")
WAIT("",1,LOOP0)
RETURN
CASE(":")
WAIT("",1,LOOP0)
RETURN
END
RETURN
#-------------------------------------------------------------------------
LOOP1: #CHAT判断ルーチン(その2)。DL,GAMEとOFF処理。
SWITCH
CASE("\013\010:CHAT{^。^`}ヨホホホ。")
CALL(CHA)
CASE("る:CHAT{^。^`}ヨホホホ。")
CALL(CHA2)
CASE(":CHAT{^。^`}ヨホホホ。")
CALL(CHA)
CASE("e:CHAT{^。^`}ヨホホホ。")
CALL(CHA1)
CASE("T{^。^`}ヨホホホ。")
GETCRTS(Z$,"0") #Z$は居場所フラグ。
CALL(CHA)
CASE(L$)
GETCRTS(Z$,"0")
WAIT("",1,LOOP1)
RETURN
END
RETURN
#=========================================================================
RETRY:
CALL(LOOP0)
RETRYD: #DLそのものに入れない場合。UPLOADでも使用。
PRINTCR("□指定ミスか,または,ゆえあって,DLには入れません□")
VCLEAR("HUYKS")
GOTO(DAT_)
#=========================================================================